# 给出一个 32 位的有符号整数，你需要将这个整数中每位上的数字进行反转。
#
# 示例 1:
#
# 输入: 123
# 输出: 321
#  示例 2:
#
# 输入: -123
# 输出: -321
# 示例 3:
#
# 输入: 120
# 输出: 21
# 注意:
#
# 假设我们的环境只能存储得下 32 位的有符号整数，则其数值范围为 [−231,  231 − 1]。请根据这个假设，如果反转后整数溢出那么就返回 0。

# class Solution:
#     def reverse(self, x: int) -> int:

import sys

# def reverse(x):
#     flag = 1
#     if x < 0:
#         flag = -1
#     x = abs(x)
#     result = 0
#     while (x):
#         n = abs(x) % 10
#         result *= 10
#         result += n
#         x //= 10
#     if flag == 1 and result > 2 ** 31 -1:
#         return 0
#     if flag == -1 and result > 2 ** 31:
#         return 0
#     return result * flag
#
# result = reverse(-123)
# print("result:", result)

def reverse(x):
    flag = 1
    if x < 0:
        flag = -1
        x = abs(x)

    str1 = str(x)
    str1 = str1[::-1]

    result = flag * int(str1)

    if result > 2 ** 31 -1:
        return 0
    elif result < -1 * 2 ** 31:
        return 0

    return result


result = reverse(-123)
print("result:", result)





